﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;

using System.Collections.ObjectModel;
using System.Runtime.Serialization;

namespace Timetable.Base.Entities
{
    [DataContract(IsReference = true)]
    public class ScheduleInfo : BaseEntity
    {
        [DataMember]
        public virtual ICollection<Faculty> Faculties { get; set; }
        [DataMember]
        public virtual ICollection<Course> Courses { get; set; }
        [DataMember]
        public virtual ICollection<Speciality> Specialities { get; set; }
        [DataMember]
        public virtual ICollection<Group> Groups { get; set; }
        [DataMember]
        public Lecturer Lecturer { get; set; }
        [DataMember]
        public virtual ICollection<Auditorium> LikeAuditoriums { get; set; }
        [DataMember]
        public TutorialType TutorialType { get; set; }
        [DataMember]
        public Department Department { get; set; }
        [DataMember]
        public int SubgroupCount { get; set; }
        [DataMember]
        public int HoursPerWeek { get; set; }
        [DataMember]
        public Tutorial Tutorial { get; set; }
        [DataMember]
        public virtual ICollection<Schedule> Schedules { get; set; }

        public ScheduleInfo()
        {
            Groups = new HashSet<Group>();
            Faculties = new HashSet<Faculty>();
            Courses = new HashSet<Course>();
            Specialities = new HashSet<Speciality>();
            LikeAuditoriums = new HashSet<Auditorium>();
            Schedules = new HashSet<Schedule>();
        }
    }
}
